﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Sinacor.Infra.Service.Security
{
    /// <summary>
    /// Classe contendo as informações de uma operação (método de um serviço).
    /// </summary>
    public class Operation
    {
        private int _operation_id;
        private int _operation_type_id;
        private string _name;
        private string _type;
        private string _hash;
        private List<string> _allowedModules;

        /// <summary>
        /// Id da operação
        /// </summary>
        public int OperationId
        {
            get { return _operation_id; }
            set { _operation_id = value; }
        }

        /// <summary>
        /// Id do tipo da operação
        /// </summary>
        public int OperationTypeId
        {
            get { return _operation_type_id; }
            set { _operation_type_id = value; }
        }

        /// <summary>
        /// Nome da operação
        /// </summary>
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }

        /// <summary>
        /// Tipo da operação
        /// </summary>
        public string Type
        {
            get { return _type; }
            set { _type = value; }
        }

        /// <summary>
        /// Hash da operação
        /// </summary>
        public string Hash
        {
            get { return _hash; }
            set { _hash = value; }
        }

        /// <summary>
        /// Lista de módulos que têm direito de executar esta operação
        /// </summary>
        public List<string> AllowedModules
        {
            get { return _allowedModules; }
            set { _allowedModules = value; }
        }
    }
}
